1. Field of the Invention
The invention relates to computing systems and, more particularly, to the diagnosis of application failures.
2. Description of the Related Art
In recent years, computing technology has become ubiquitous and all manner of entities in society have become increasingly dependent upon the proper operation of both computer hardware and software. Accordingly, maintaining the proper operation and availability of the applications themselves is critically important. One common reason for application failure is due to a change in one or more of the components being used by the application. For example, updating or patching a particular resource or library used by an application may cause the application to fail. Alternatively, the path used by an application to access particular components may be changed, intentionally or unintentionally, which results in the use of a different version of a particular component or resource. While configuration tracking tools exist which may manage machine loadouts/application configuration files, such tools do not generally track what components are used by an application and how they change.
Given the increased dependence of corporate, government and other entities on the computer applications being used in their respective environments, it is critical that the cause of an application failure be quickly identified and remedied. However, diagnosing the cause of an application failure can be very difficult. One common and difficult to diagnose error is when an application that has previously worked reliably begins to fail. This is often caused by some change to the computer configuration. For example, various components of an operating system may be updated on a periodic basis. Subsequent to an update, various applications may be run without incident over a period of time. During this time other updates to the system may have occurred as well. At a later point in time, an application is run which is perhaps run on a less frequent basis and fails. The failure may be due to an update which occurred 3 weeks earlier. However, determining that the application failure is caused by a change to a particular component which occurred 4 updates earlier can be a daunting and time consuming task. Identifying the cause of the failure may be exacerbated because configuration management tools generally do not track which components are used by which applications. As another example, even if no software has been updated on the machine, many versions of a given software component may exist on the machine. Changes to application configuration, such as modifying the search path for libraries or for Java classes can have the unintended side-effect of changing what components are used by a given application, often leading to mysterious and difficult-to-diagnose failures.
Accordingly, an effective method and mechanism for diagnosing application failures is desired.